Apache Ivy একটি শক্তিশালী ডিপেন্ডেন্সি ম্যানেজমেন্ট টুল যা আপনাকে local এবং remote রিপোজিটরি ব্যবহারের মাধ্যমে লাইব্রেরি বা মডিউল publish করতে সাহায্য করে। Publish মানে হল, আপনার তৈরি করা বা প্রোজেক্টে ব্যবহৃত লাইব্রেরি বা মডিউলটিকে একটি নির্দিষ্ট রিপোজিটরিতে আপলোড করা, যাতে অন্য ডেভেলপাররা বা প্রোজেক্টগুলো সেটি ব্যবহার করতে পারে।
একটি local repository হলো আপনার সিস্টেমে বা লোকাল সার্ভারে সংরক্ষিত রিপোজিটরি, যেখানে আপনার প্রোজেক্টের লাইব্রেরি বা মডিউলটি সংরক্ষণ করা হয়। এটি সাধারণত ডেভেলপারদের জন্য ব্যবহৃত হয় যখন তারা নতুন বা কাস্টম লাইব্রেরি তৈরি করে এবং সেটি আপলোড করতে চায়।
প্রথমে, একটি ivy.xml ফাইল তৈরি করুন যেখানে আপনি মডিউলটি ডিফাইন করবেন এবং রিপোজিটরি নির্ধারণ করবেন।
<ivy-module version="2.0">
<info organisation="com.example" module="my-module" revision="1.0.0" />
<publications>
<artifact name="my-module" type="jar" ext="jar" />
</publications>
</ivy-module>
এখানে:
<info>
ট্যাগে মডিউল এবং সংস্করণ (revision) নির্ধারণ করা হয়েছে।<publications>
ট্যাগে artifact
প্রকাশিত হবে, যা JAR ফাইল হিসেবে নির্ধারণ করা হয়েছে।Ivy তে local repository তে মডিউল পাবলিশ করার জন্য আপনাকে ivysettings.xml ফাইল কনফিগার করতে হবে। এই ফাইলে আপনি local repository এর পাথ নির্ধারণ করবেন।
<ivysettings>
<repositories>
<repository name="local" url="file://${user.home}/.ivy2/local" />
</repositories>
<resolvers>
<resolver name="local" class="org.apache.ivy.plugins.resolver.FileSystemResolver">
<artifact pattern="file://${user.home}/.ivy2/local/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</resolver>
</resolvers>
</ivysettings>
এখানে:
<repository>
ট্যাগে local repository এর লোকেশন নির্ধারণ করা হয়েছে। এটি আপনার সিস্টেমের ${user.home}/.ivy2/local
ফোল্ডারে সংরক্ষিত হবে।<resolver>
ট্যাগে FileSystemResolver ব্যবহার করা হয়েছে, যা ফাইল সিস্টেম থেকে লাইব্রেরি রেজলভ করবে।এখন, Ant বিল্ড স্ক্রিপ্টে Ivy টাস্ক ব্যবহার করে মডিউলটি লোকাল রিপোজিটরিতে প্রকাশ (publish) করুন।
<project name="IvyPublishExample" default="publish" basedir=".">
<taskdef name="ivy" classname="org.apache.ivy.ant.IvyTask" />
<target name="publish">
<ivy:publish settings="ivysettings.xml"/>
</target>
</project>
এখানে:
<ivy:publish>
টাস্ক ব্যবহার করা হয়েছে যা মডিউলটি local repository তে প্রকাশ করবে।settings="ivysettings.xml"
এই ফাইলের মাধ্যমে কনফিগারেশন ফাইল নির্দেশ করা হয়েছে।Ant স্ক্রিপ্টটি চালানোর মাধ্যমে মডিউলটি local repository তে প্রকাশ করতে পারেন:
ant publish
এটি আপনার my-module জার ফাইলটি local repository তে ${user.home}/.ivy2/local/com/example/my-module/1.0.0/my-module-1.0.0.jar
পাথে প্রকাশ করবে।
Remote repository হল একটি সার্ভার বা পাবলিক রিপোজিটরি যেখানে লাইব্রেরি বা মডিউলগুলি সারা বিশ্বে শেয়ার করা হয়, যেমন Maven Central বা Ivy Repository। আপনি যদি আপনার মডিউলটি অন্য ডেভেলপারদের সাথে শেয়ার করতে চান, তবে এটি একটি remote repository তে প্রকাশ করা প্রয়োজন।
প্রথমত, আপনাকে একটি remote repository কনফিগার করতে হবে যেখানে আপনি মডিউলটি পাবলিশ করবেন। নিচে Maven Central রিপোজিটরি ব্যবহার করার উদাহরণ দেওয়া হয়েছে:
<ivysettings>
<repositories>
<repository name="maven-central" url="https://repo.maven.apache.org/maven2" />
</repositories>
<resolvers>
<resolver name="maven-central" class="org.apache.ivy.plugins.resolver.URLResolver">
<artifact pattern="https://repo.maven.apache.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</resolver>
</resolvers>
</ivysettings>
এখানে:
<repository>
ট্যাগে Maven Central রিপোজিটরি এর URL নির্ধারণ করা হয়েছে।<resolver>
ট্যাগে URLResolver ব্যবহৃত হয়েছে, যা Maven Central থেকে লাইব্রেরি রেজলভ করবে।Ivy টাস্কের মাধ্যমে remote repository তে মডিউল পাবলিশ করা যেতে পারে। Ant স্ক্রিপ্টে নিম্নলিখিতভাবে publish টাস্ক ব্যবহার করতে পারেন:
<project name="IvyPublishRemote" default="publish" basedir=".">
<taskdef name="ivy" classname="org.apache.ivy.ant.IvyTask"/>
<target name="publish">
<ivy:publish settings="ivysettings.xml"/>
</target>
</project>
এখানে:
<ivy:publish>
টাস্কটি Maven Central বা অন্য remote repository তে মডিউল প্রকাশ করবে।এখন, আপনি Ant স্ক্রিপ্টটি চালিয়ে মডিউলটি remote repository তে প্রকাশ করতে পারেন:
ant publish
এটি আপনার my-module মডিউলটি Maven Central বা আপনার নির্দিষ্ট remote repository তে প্রকাশ করবে।
যদি আপনি private remote repository তে মডিউল পাবলিশ করতে চান, তবে আপনাকে authentication কনফিগার করতে হবে।
<credentials host="repo.example.com" username="myuser" password="mypassword"/>
এখানে:
এটি Ivy কে নির্দিষ্ট remote repository তে পাবলিশ করার জন্য প্রয়োজনীয় authentication প্রদান করবে।
Ivy এবং Ant এর মাধ্যমে আপনি সহজেই আপনার প্রোজেক্টের মডিউলগুলি local এবং remote repositories তে পাবলিশ করতে পারেন। Local repository তে মডিউল প্রকাশ করার জন্য আপনাকে Ivy সেটিংস কনফিগারেশন এবং Ivy টাস্কের মাধ্যমে লাইব্রেরি ডাউনলোড এবং রেজলভ করতে হবে। Remote repository তে মডিউল প্রকাশ করতে আপনাকে Ivy সেটিংস কনফিগারেশন এবং Ant স্ক্রিপ্টের মাধ্যমে রিপোজিটরি URL এবং authentication কনফিগার করতে হবে। Ivy এর মাধ্যমে এই প্রক্রিয়া সহজভাবে স্বয়ংক্রিয়ভাবে সম্পন্ন করা যায়, যা ডেভেলপারদের জন্য লাইব্রেরি ম্যানেজমেন্ট আরও সহজ এবং কার্যকরী করে তোলে।
common.read_more